﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace DAL
{
    public partial class insumoFinal
    {

        //public string getCorrelativo(dbGestionDataContext _db, string familia, int tipoInsumo, int nivel)
        //{
        //    string ultimo;
        //    // el correlativo actual de la familia
        //    // funciona  para crear familia y subfamilia
        //    string codigostr = "";

        //    if (familia == String.Empty && nivel > 0)
        //    {
        //        throw new Exception("Ingrese codigo");
        //    }

        //    if (nivel == 3)
        //    {
        //        var q = from a in _db.insumoFinals
        //                where a.codigo.Substring(0, 6) == familia && a.nivel == nivel
        //                select a.codigo.Substring(6, 4);

        //        ultimo = q.Max();

        //        if (ultimo == null | ultimo == "")
        //            ultimo = "0";

        //        int codigoint = int.Parse(ultimo);
        //        codigoint++;
        //        codigostr = codigoint.ToString();

        //        if (codigoint.ToString().Length == 1)
        //        {
        //            // colocamos los ceros
        //            codigostr = "000" + codigoint.ToString();
        //        }
        //        if (codigoint.ToString().Length == 2)
        //        {
        //            // colocamos los ceros
        //            codigostr = "00" + codigoint.ToString();
        //        }
        //        if (codigoint.ToString().Length == 3)
        //        {
        //            // colocamos los ceros
        //            codigostr = "0" + codigoint.ToString();
        //        }
        //        if (codigoint.ToString().Length > 4)
        //        {
        //            throw new Exception("Termino de secuencia de correlativo ultimo =" + ultimo);
        //        }
        //    }
        //    if (nivel == 2)
        //    {
        //        familia = familia.Substring(0, 4);

        //        ultimo = (from a in _db.insumoFinals
        //                  where a.codigo.Substring(0, 4) ==
        //                  familia &
        //                  a.nivel == nivel
        //                  select a.codigo.Substring(4, 2)).Max();

        //        if (ultimo == null | ultimo == "")
        //            ultimo = "00";

        //        int codigoint = int.Parse(ultimo);
        //        codigoint++;
        //        codigostr = codigoint.ToString();

        //        if (codigoint.ToString().Length == 1)
        //        {
        //            // colocamos los ceros
        //            codigostr = "0" + codigoint.ToString();
        //        }


        //        if (codigoint.ToString().Length > 2)
        //        {
        //            throw new Exception("Termino de secuencia de correlativo ultimo =" + ultimo);
        //        }

        //    }
        //    if (nivel == 1)
        //    {
        //        ultimo = (from a in _db.insumoFinals
        //                  where a.codigo.Substring(0, 2) == familia && a.nivel == nivel
        //                  && a.codigo.Substring(2, 2) != "99"
        //                  select a.codigo.Substring(2, 2)).Max();

        //        if (ultimo == null)
        //            ultimo = "0";

        //        int codigoint = int.Parse(ultimo);
        //        codigoint++;
        //        codigostr = codigoint.ToString();

        //        if (codigoint.ToString().Length == 1)
        //        {
        //            // colocamos los ceros
        //            codigostr = "0" + codigoint.ToString();

        //        }
        //        if (codigoint.ToString().Length > 2)
        //        {
        //            throw new Exception("Termino de secuencia de correlativo ultimo =" + ultimo);
        //        }

        //    }

        //    if (nivel == 0)
        //    {
        //        //para el padron segun los insumos



        //        ultimo = (from a in _db.insumoFinals
        //                  where a.nivel == nivel && a.codigo.Substring(0, 2).Trim() != "99"
        //                  & a.idTipoInsumo == tipoInsumo
        //                  select a.codigo.Substring(0, 2)).Max();



        //        if (ultimo == null)
        //        {
        //            switch (tipoInsumo)
        //            {
        //                case 1:
        //                    ultimo = "0";
        //                    break;
        //                case 2:
        //                    ultimo = "49";
        //                    break;
        //                case 3:
        //                    ultimo = "74";
        //                    break;

        //            }
        //        }


        //        int codigoint = int.Parse(ultimo);
        //        codigoint++;


        //        switch (tipoInsumo)
        //        {
        //            case 1:
        //                if (codigoint > 50)
        //                    throw new Exception("Termino de secuencia de correlativo ultimo=" + ultimo);
        //                break;
        //            case 2:
        //                if (codigoint >= 75)
        //                    throw new Exception("Termino de secuencia de correlativo ultimo=" + ultimo);

        //                break;
        //            case 3:
        //                if (codigoint >= 99)
        //                    throw new Exception("Termino de secuencia de correlativo ultimo=" + ultimo);

        //                break;
        //            default:
        //                break;
        //        }



        //        codigostr = codigoint.ToString();

        //        if (codigoint.ToString().Length == 1)
        //        {
        //            // colocamos los ceros
        //            codigostr = "0" + codigoint.ToString();
        //            familia = "";
        //        }

        //        if (codigoint.ToString().Length > 2)
        //        {
        //            throw new Exception("Termino de secuencia de correlativo ultimo=" + ultimo);
        //        }




        //    }

        //    return familia + codigostr;


        //}

    }
}
